package com.wyzz.hr.pojo.base;

import java.io.Serializable;

import com.wyzz.hr.pojo.Department;
import com.wyzz.hr.pojo.JobTitle;
import com.wyzz.hr.pojo.PositionBase;

public abstract class BasePositionBase implements Serializable {

	public BasePositionBase() {
		hashCode = 0x80000000;
		initialize();
	}

	public BasePositionBase(String id) {
		hashCode = 0x80000000;
		setId(id);
		initialize();
	}

	public BasePositionBase(String id, String pbName, Integer pbMaxExceed,
			Integer pbStatus) {
		hashCode = 0x80000000;
		setId(id);
		setPbName(pbName);
		setPbMaxExceed(pbMaxExceed);
		setPbStatus(pbStatus);
		initialize();
	}

	protected void initialize() {
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
		hashCode = 0x80000000;
	}

	public String getPbName() {
		return pbName;
	}

	public void setPbName(String pbName) {
		this.pbName = pbName;
	}

	public String getPbDesc() {
		return pbDesc;
	}

	public void setPbDesc(String pbDesc) {
		this.pbDesc = pbDesc;
	}

	public String getPbDescAttach() {
		return pbDescAttach;
	}

	public void setPbDescAttach(String pbDescAttach) {
		this.pbDescAttach = pbDescAttach;
	}

	public Integer getPbInCharge() {
		return pbInCharge;
	}

	public void setPbInCharge(Integer pbInCharge) {
		this.pbInCharge = pbInCharge;
	}

	public Integer getPbMaxEmployee() {
		return pbMaxEmployee;
	}

	public void setPbMaxEmployee(Integer pbMaxEmployee) {
		this.pbMaxEmployee = pbMaxEmployee;
	}

	public Integer getPbMaxExceed() {
		return pbMaxExceed;
	}

	public void setPbMaxExceed(Integer pbMaxExceed) {
		this.pbMaxExceed = pbMaxExceed;
	}

	public Integer getPbStatus() {
		return pbStatus;
	}

	public void setPbStatus(Integer pbStatus) {
		this.pbStatus = pbStatus;
	}

	public Integer getPbSortId() {
		return pbSortId;
	}

	public void setPbSortId(Integer pbSortId) {
		this.pbSortId = pbSortId;
	}

	public String getPbWorkAddress() {
		return pbWorkAddress;
	}

	public void setPbWorkAddress(String pbWorkAddress) {
		this.pbWorkAddress = pbWorkAddress;
	}

	public String getPbWorkTime() {
		return pbWorkTime;
	}

	public void setPbWorkTime(String pbWorkTime) {
		this.pbWorkTime = pbWorkTime;
	}

	public String getPbWorkTool() {
		return pbWorkTool;
	}

	public void setPbWorkTool(String pbWorkTool) {
		this.pbWorkTool = pbWorkTool;
	}

	public JobTitle getPbJobTitle() {
		return pbJobTitle;
	}

	public void setPbJobTitle(JobTitle pbJobTitle) {
		this.pbJobTitle = pbJobTitle;
	}

	public Department getPbDeptId() {
		return pbDeptId;
	}

	public void setPbDeptId(Department pbDeptId) {
		this.pbDeptId = pbDeptId;
	}

	public PositionBase getPbSupId() {
		return pbSupId;
	}

	public void setPbSupId(PositionBase pbSupId) {
		this.pbSupId = pbSupId;
	}

	public boolean equals(Object obj) {
		if (null == obj)
			return false;
		if (!(obj instanceof PositionBase))
			return false;
		PositionBase positionBase = (PositionBase) obj;
		if (null == getId() || null == positionBase.getId())
			return false;
		else
			return getId().equals(positionBase.getId());
	}

	public int hashCode() {
		if (0x80000000 == hashCode) {
			if (null == getId())
				return super.hashCode();
			String hashStr = (new StringBuilder()).append(getClass().getName())
					.append(":").append(getId().hashCode()).toString();
			hashCode = hashStr.hashCode();
		}
		return hashCode;
	}

	public String toString() {
		return super.toString();
	}

	public static String REF = "PositionBase";
	public static String PROP_PB_MAX_EMPLOYEE = "pbMaxEmployee";
	public static String PROP_PB_SUP_ID = "pbSupId";
	public static String PROP_PB_IN_CHARGE = "pbInCharge";
	public static String PROP_PB_SORT_ID = "pbSortId";
	public static String PROP_PB_WORK_TIME = "pbWorkTime";
	public static String PROP_PB_DEPT_ID = "pbDeptId";
	public static String PROP_PB_STATUS = "pbStatus";
	public static String PROP_PB_WORK_ADDRESS = "pbWorkAddress";
	public static String PROP_PB_NAME = "pbName";
	public static String PROP_PB_DESC_ATTACH = "pbDescAttach";
	public static String PROP_PB_MAX_EXCEED = "pbMaxExceed";
	public static String PROP_PB_WORK_TOOL = "pbWorkTool";
	public static String PROP_PB_JOB_TITLE = "pbJobTitle";
	public static String PROP_PB_DESC = "pbDesc";
	public static String PROP_ID = "id";
	private int hashCode;
	private String id;
	private String pbName;
	private String pbDesc;
	private String pbDescAttach;
	private Integer pbInCharge;
	private Integer pbMaxEmployee;
	private Integer pbMaxExceed;
	private Integer pbStatus;
	private Integer pbSortId;
	private String pbWorkAddress;
	private String pbWorkTime;
	private String pbWorkTool;
	private JobTitle pbJobTitle;
	private Department pbDeptId;
	private PositionBase pbSupId;

}
